//套用回溯算法的思想
//设定一个结果数组来存储所有符合条件的路径
//设定一个栈stack来存储当前路径上的节点
//设定sum来标识当前路径上的和
function FindPath(root,expectNumber){
    const result = [];//用来存储符合条件的路径

    if(root){
        FindPathCore(root,expectNumber,[],0,result);
    }
    return result;
}

function FindPathCore(node,expectNumber,stack,sum,result){
    stack.push(node.val);
    sum+=node.val;
    if(!node.left && !node.right && sum === expectNumber){
        result.push(stack.slice(0));
    }
    if(node.left){
        FindPathCore(node.left,expectNumber,stack,sum,result);
    }
    if(node.right){
        FindPathCore(node.right,expectNumber,stack,sum,result);
    }
    stack.pop();
}